package Test_1116;



/**
 * Created with Intellij IDEA
 * Description:
 * User: 星辰
 */
public class MyQueue {
     //创建节点类
    static class ListNode{
        public int val;
        public ListNode prev;
        public ListNode next;

         public ListNode(int val) {
             this.val = val;
         }
     }
     public ListNode first=null;
     public ListNode last=null;
     public int usedSize=0;
     //入队
    //判断是否为空,如果为空将头尾节点都等于该新节点
    //如果不是，将节点添加到队尾
    //有效元素个数增加
    public void offer(int val){
        ListNode listNode=new ListNode(val);
        if(isEmpty()){
            first=last=listNode;
        }else{
            last.next=listNode;
            listNode.prev=last;
            last=listNode;
        }
        usedSize++;
    }
    //出队
    //判断队列是否为空；
    //出队头元素,将队头指针向后移动
    //使用元素个数减少
    public int poll(){
        if(isEmpty()){
            return -1;

        }
        int val= first.val;
        first=first.next;
        if(first!=null){
            first.prev=null;
        }
        return val;
    }
    //获取队头元素
    //判断队列是否为空
    //如果不为空，直接返回队头元素
    public int peek(){
        if(isEmpty()){
            return -1;
        }
        return first.val;
    }
    //判断是否为空
    //判断有效元素个数是否为0
    public boolean isEmpty(){
        return usedSize==0;
    }
}
